<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding 0;
        }
        html,body{
            width: 100%;
            height: 100%;
            /* 因为我们没有预先设置body的高度，所以在浏览器中，body的高度是和元素高度一样的，
            所以爱心就会在上面中间的。因此上面代码我们这样设置body，把body的区域占满屏幕，
            这样就把爱心设置在正中间了。 */
        }/*让容器的高度和宽度充满全屏，这个要记住*/
        body{
            background-color: #e9cfcf;
            display:flex;
            /* 设置弹性容器 */
            flex-direction: row;
            /* 主轴是x轴 */
            justify-content: center;
            /* 设置在主轴中间 */
            align-items: center;
            /* 交叉轴，垂直于主轴，设置为中间 */
        }
        .heart{
        width: 200px;
        height: 200px;
        background-color: red;
        position:relative;
        transform: rotate(45deg);/*顺时针旋转45度*/
        animation: heartbit 1s alternate infinite;
        box-shadow: 0 0 30px red;
        }
        .heart::before{
            content:"";
            width: 200px;
            height: 100px;
            background-color:red;
            position: absolute;
            left: 0;
            top:-99px;/*这些位置是根据红色框来定位的，距离红框左边0px,距离红框上边-100px,
            也就是在红框的正上方；后面调整为了-99px，因为画出来的心，半圆和正方形有一点点
            空隙。*/
            border-radius: 100px 100px 0 0;
            box-shadow: 0 0 30px red;
        }
        .heart::after{
            content:"";
            /* .heart::before 伪元素部分
            内容生成：content: ""; 
            伪元素中必须要有的属性声明，这里虽然内容为空字符串，
            但它是创建伪元素的必要语法部分，用于在指定元素（此处是 .heart 类对应的元素）
            的前面生成一个额外的虚拟元素，这个虚拟元素可以像普通元素一样设置各种样式。 */
            width: 100px;
            height: 200px;
            background-color: red;
            position: absolute;
            left: -99px;
            top:0;/*距离红框左边-100px,距离红框上边0px,
            也就是在红框的正左方*/
            border-radius: 100px 0 0 100px;
            box-shadow: 0 0 30px red;
        }

        /*实现动画*/
        @keyframes heartbit {
            0%{
                transform:rotate(45deg) scale(0.6);
                /* scale可以把图片变大或者变小 */
            }
            /* 25%{
                transform:rotate(45deg) scale(0.8);
            }
            50%{
                transform:rotate(45deg) scale(1);
            }
            75%{
                transform:rotate(45deg) scale(1.2);
            } 这里设置的太细的话，动画会一卡一卡的*/
            100%{
                transform:rotate(45deg) scale(1.4);
            }
}
.heart span {
  position: absolute;
  top:12%;
  left:7%;
  z-index:1;
  color:white;
  font-size: 24px;
  font-weight: bold;
  transform: rotate(-45deg);
}
    </style>
</head>
<body>
    <div class="heart"><span>love</span></div>
    
</body>
</html>